home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
The World of Computer Software.iso
/
superopt.zip
/
TODO
< prev
next >
Wrap
Text File
|
1992-06-11
|
2KB
|
46 lines
* I'd like to have a means to define that a goal function is not defined
for all possible input values. On extra parameter to DEF_GOAL could take
care of that.
Also I'd like to add a list of immediate values to try for each goal
function. For example, 31 and 32 could be useful for ffs.
* Make it possible to handle more immediate values.
* Interpret goal functions so the user doesn't need to recompile.
Interpretation would make goal function evaluation slower than it is now,
but goal function evaluation is not critical. It can be made even less
critical by hacking test_sequence to cache computed values.
* Add code to _prove_ that a generated function is correct.
* Add bsrl/bsfl and bfffo to CISC synth.
* Add some *_CO function to RISC synth.
* Check that PERFORM_CLZ works like RS/6000's cntlz and 29k's clz.
Is it ok for input == 0?
* A major speed improvement would be to make independent insn have a
canonical order. Consider `gts' on the SPARC. This is probably not
very hard, if insns are enumerated in some clever way and loop
variables are passed down.
After an instruction that sets carry (and there is another instruction
with the same effect apart from that it doesn't affect carry), the
generated carry has to be used. [Fix this with a reservation vector
--allow both making and deleting a reservation. Make reservation when
carry is generated and delete it when it is used.] The leaf
instructions have to munch carry if an unused carry is pending.
Make sure all computed values are used by subsequent instructions. For
example, if we have just two more values to compute and three yet unused
values, the last two instructions have to restrict their input operands.
* Shift 32 steps on 68k is well-defined. LSHIFTR_CO can be used to zero a
word and simultaneously move the sign bit to the X flag, ASHIFTR_CO can
be used to propagate the sign bit to the whole word and to the X flag.
Useful?
* `386: bt, clc, cmc, cdq[0->1], lea, shld, shrd, stc.